home *** CD-ROM | disk | FTP | other *** search
- '\"
- '\" Copyright 1992 Regents of the University of California
- '\" Permission to use, copy, modify, and distribute this
- '\" documentation for any purpose and without fee is hereby
- '\" granted, provided that this notice appears in all copies.
- '\" The University of California makes no representations about
- '\" the suitability of this material for any purpose. It is
- '\" provided "as is" without express or implied warranty.
- '\"
- '\" $Header: /user5/mottsmth/j/j/jaquith.man,v 1.8 92/05/07 09:02:14 mottsmth Exp $ SPRITE (Berkeley)
- '\"
- .\" The definitions below are for supplemental macros used in Sprite
- .\" manual entries.
- .\"
- .\" .HS name section [date [version]]
- .\" Replacement for .TH in other man pages. See below for valid
- .\" section names.
- .\"
- .\" .AP type name in/out [indent]
- .\" Start paragraph describing an argument to a library procedure.
- .\" type is type of argument (int, etc.), in/out is either "in", "out",
- .\" or "in/out" to describe whether procedure reads or modifies arg,
- .\" and indent is equivalent to second arg of .IP (shouldn't ever be
- .\" needed; use .AS below instead)
- .\"
- .\" .AS [type [name]]
- .\" Give maximum sizes of arguments for setting tab stops. Type and
- .\" name are examples of largest possible arguments that will be passed
- .\" to .AP later. If args are omitted, default tab stops are used.
- .\"
- .\" .BS
- .\" Start box enclosure. From here until next .BE, everything will be
- .\" enclosed in one large box.
- .\"
- .\" .BE
- .\" End of box enclosure.
- .\"
- .\" .VS
- .\" Begin vertical sidebar, for use in marking newly-changed parts
- .\" of man pages.
- .\"
- .\" .VE
- .\" End of vertical sidebar.
- .\"
- .\" .DS
- .\" Begin an indented unfilled display.
- .\"
- .\" .DE
- .\" End of indented unfilled display.
- .\"
- '\" # Heading for Sprite man pages
- .de HS
- .if '\\$2'cmds' .TH \\$1 1 \\$3 \\$4
- .if '\\$2'lib' .TH \\$1 3 \\$3 \\$4
- .if '\\$2'tcl' .TH \\$1 3 \\$3 \\$4
- .if '\\$2'tk' .TH \\$1 3 \\$3 \\$4
- .if t .wh -1.3i ^B
- .nr ^l \\n(.l
- .ad b
- ..
- '\" # Start an argument description
- .de AP
- .ie !"\\$4"" .TP \\$4
- .el \{\
- . ie !"\\$2"" .TP \\n()Cu
- . el .TP 15
- .\}
- .ie !"\\$3"" \{\
- .ta \\n()Au \\n()Bu
- \&\\$1 \\fI\\$2\\fP (\\$3)
- .\".b
- .\}
- .el \{\
- .br
- .ie !"\\$2"" \{\
- \&\\$1 \\fI\\$2\\fP
- .\}
- .el \{\
- \&\\fI\\$1\\fP
- .\}
- .\}
- ..
- '\" # define tabbing values for .AP
- .de AS
- .nr )A 10n
- .if !"\\$1"" .nr )A \\w'\\$1'u+3n
- .nr )B \\n()Au+15n
- .\"
- .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
- .nr )C \\n()Bu+\\w'(in/out)'u+2n
- ..
- '\" # BS - start boxed text
- '\" # ^y = starting y location
- '\" # ^b = 1
- .de BS
- .br
- .mk ^y
- .nr ^b 1u
- .if n .nf
- .if n .ti 0
- .if n \l'\\n(.lu\(ul'
- .if n .fi
- ..
- '\" # BE - end boxed text (draw box now)
- .de BE
- .nf
- .ti 0
- .mk ^t
- .ie n \l'\\n(^lu\(ul'
- .el \{\
- .\" Draw four-sided box normally, but don't draw top of
- .\" box if the box started on an earlier page.
- .ie !\\n(^b-1 \{\
- \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
- .\}
- .el \}\
- \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
- .\}
- .\}
- .fi
- .br
- .nr ^b 0
- ..
- '\" # VS - start vertical sidebar
- '\" # ^Y = starting y location
- '\" # ^v = 1 (for troff; for nroff this doesn't matter)
- .de VS
- .mk ^Y
- .ie n 'mc \s12\(br\s0
- .el .nr ^v 1u
- ..
- '\" # VE - end of vertical sidebar
- .de VE
- .ie n 'mc
- .el \{\
- .ev 2
- .nf
- .ti 0
- .mk ^t
- \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
- .sp -1
- .fi
- .ev
- .\}
- .nr ^v 0
- ..
- '\" # Special macro to handle page bottom: finish off current
- '\" # box/sidebar if in box/sidebar mode, then invoked standard
- '\" # page bottom macro.
- .de ^B
- .ev 2
- 'ti 0
- 'nf
- .mk ^t
- .if \\n(^b \{\
- .\" Draw three-sided box if this is the box's first page,
- .\" draw two sides but no top otherwise.
- .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
- .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
- .\}
- .if \\n(^v \{\
- .nr ^x \\n(^tu+1v-\\n(^Yu
- \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
- .\}
- .bp
- 'fi
- .ev
- .if \\n(^b \{\
- .mk ^y
- .nr ^b 2
- .\}
- .if \\n(^v \{\
- .mk ^Y
- .\}
- ..
- '\" # DS - begin display
- .de DS
- .RS
- .nf
- .sp
- ..
- '\" # DE - end display
- .de DE
- .fi
- .RE
- .sp .5
- ..
- .HS JAQUITH cmds
- .BS
- '\" Note: do not modify the .SH NAME line immediately below!
- .SH NAME
- jaquith \- Tertiary storage manager
- .SH SYNOPSIS
- \fBjaquith\fR [\fB\-port \fIport\fR]
- [\fB\-logfile \fIlogfile\fR] [\fB\-logdetail \fIlevel\fR]
- [\fB\-root \fIrootname\fR] [\fB-putexec \fIfilename\fR]
- .br
- [\fB-getexec \fIfilename\fR]
- [\fB-cleanexec \fIfilename\fR]
- [\fB-diskhigh \fIpercent\fR] [\fB-disklow \fIpercent\fR]
- [\fB-netmask \fImask\fR]
- .br
- [\fB-fsyncfreq \fIcount\fR] [\fB-childdbg]
- .SH OPTIONS
- .IP "\fB\-port \fIport\fR" 14
- Port number where jaquith should listen for new connections.
- Defaults to 10001 (decimal).
- .IP "\fB\-logfile \fIlogfile\fR" 14
- Enable activity logging to specified file
- .IP "\fB\-logdetail \fIdetail\fR" 14
- Amount of logging information. There are four levels,
- with high levels including the lower ones.
- 0x0 == None. 0x01 = errors. 0x02 = major events.
- 0x04 = minor events. 0x08 = code tracing.
- .IP "\fB\-root \fIrootname\fR" 14
- Root of index tree
- .IP "\fB\-putexec \fIfilename\fR" 14
- Path to Jaquith update program. Defaults to /usr/bin/jupdate.
- .IP "\fB\-getexec \fIfilename\fR" 14
- Path to Jaquith retrieval program. Defaults to /usr/bin/jfetch.
- .IP "\fB\-cleanexec \fIfilename\fR" 14
- Path to Jaquith cleaner program. Defaults to /usr/bin/jclean.
- .IP "\fB\-diskhigh \fIpercent\fR" 14
- Disk threshold at which cleaner will be invoked to free disk
- space by copying data buffers to tape.
- .IP "\fB\-disklow \fIpercent\fR" 14
- Disk threshold at which cleaner will stop trying to free
- disk space by copying data buffers to tape.
- .IP "\fB\-netmask \fImask\fR" 14
- Refuse service to clients whose internet address doesn't match
- \fImask\fR. The mask is specified in the form "128.32.1.2".
- A "*" can be substituted for a number to accept all values in
- that position.
- .IP "\fB\-fsyncfreq \fIcount\fR" 14
- For jput operations, force an fsync every \fIcount\fR files.
- Default is 10.
- .IP "\fB\-childdbg\fR" 14
- Invoke update and retrieval processes with -debug flag.
- .BE
- .SH DESCRIPTION
- .PP
- The \fBJaquith\fP system is a tertiary storage manager which
- provides storage, indexing and retrieval services to network clients.
-
- .PP
- This man page describes \fBJaquith\fR, the main server. The other parts
- of the system include:
-
- .DS
- jmgr -- the jukebox manager
- jclean -- the archive cleaner
- jput, jget, jls, jstat -- Client utilities
- jupdate, jfetch, jquery -- Jaquith servant processes
- jcopy, jctrl, jbuild -- System administration utilities
- .DE
-
- The jaquith process is the primary server for the Jaquith archive
- system. It listens on a public port for incoming client requests
- and spawns child processes to handle those requests. The port is
- specified with the \fB-port\fR option. Each \fBjput\fR
- request spawns a \fIwriter\fR as specified with the \fB-putexec\fR
- option. Similarly, each \fBjget\fR or \fRjls\fR request spawns a
- \fIreader\fR. \fBjstat\fR requests spawn \fIquery\fR processes.
-
- .PP
- Jaquith also spawns a \fIcleaner\fR process which writes data
- from disk to tertiary storage, as necessary. The cleaner is specified
- with the \fB-cleanexec\fR option, and the threshold which controls
- its invocation is specified with the \fR-disklow\fR and \fB-diskhigh\fR
- options. \fBDiskHigh\fR gives the level of disk use, in percent,
- when the cleaner should be invoked. The cleaner will clean the
- disk down to the low water mark, \fB-disklow\fR.
-
- .PP
- Jaquith assumes the presence of the jukebox manager, a process
- which mediates access to the physical jukebox. See jmgr for details.
-
- .PP
- To install Jaquith initially, create a directory to act as the
- Jaquith root, typically /jaquith. It's easiest if DEF_ROOT
- (in jaquith.h) is set to this name and all the programs are recompiled.
- Then create volconfig and devconfig files for jmgr. Start jaquith
- and jmgr and you're set.
-
- .PP
- To grant access to Jaquith to a new user, create a new logical
- archive, if desired, by creating a subdirectory in the Jaquith root
- called \fIarchName\fB.arch\fR. In this subdirectory, create the
- \fBauth\fR file, as described in the RELATED FILES section, or
- just add the user to the existing authorization file.
-
- .SH RELATED FILES
- .PP
- Jaquith maintains a number of files describing the state of
- the physical and logical archive. All of these files reside
- in the Jaquith root (usually /arch but settable with the -root
- flag).
- .IP "\fBfreevols\fR" 14
- The global pool of available volumes. These will be consumed as
- needed by the cleaner process. Format of an entry is just the volume ID.
- .IP "\fBdevconfig\fR" 14
- The list of device names to be controlled by the jukebox manager.
- Format is device name followed by its slot in the jukebox.
- .IP "\fBvolconfig\fR" 14
- The list of volumes and their slot locations in the jukebox. Format
- is the volume name followed by its slot in the jukebox.
- .IP "\fBtbuf.lru\fR" 14
- The global least-recently-used buffer list. Buffers at the top
- of the list are prime candidates for removal if disk space is tight.
- Format is logical archive name followed by tbuf number.
- .IP "\fBrebuild.\fIpid\fR" 14
- Temporary work file created by \fBjbuild\fR.
- .IP "\fBthdr.\fIpid.num\fR" 14
- Emergency work file created by \fBjbuild\fR
- when it can't parse the thdr file it got from tape.
- .IP "\fIarchive\fB/config\fR" 14
- Archive configuration information. Format is jmgr server
- name and port number followed by desired buffer size.
- .IP "\fIarchive\fB/tbuf\fR" 14
- Current buffer number. I.E. current buffer is \fBtbuf.\fInum\fR.
- .IP "\fIarchive\fB/tbuf.\fInum\fR" 14
- Tape buffer files. These files contain user file data in Posix tar format.
- .IP "\fIarchive\fB/thdr.\fInum\fR" 14
- Tape header files. These files contain the indexing information
- in case the disk index structure is destroyed.
- .IP "\fIarchive\fB/meta.\fInum\fR" 14
- Meta information about tbuf.\fInum\fR maintained while buffer is being built
- in case of crash.
- .IP "\fIarchive\fB/log\fR" 14
- The list of operations which have been requested on this logical archive.
- .IP "\fIarchive\fB/filemap\fR" 14
- The list of volumes assigned to this archive along with the
- starting buffer number on the volume and the date the volume was assigned.
- .IP "\fIarchive\fB/auth\fR" 14
- The authorization information for the logical archive. The file
- consists of single-line entries in no particular order. Each
- entry has the form \fIusername groupname hostname permission\fR.
- \fIusername\fR, \fIgroupname\fR, and \fIhostname\fR are globbing
- expressions. \fIPermission\fR is \fBR\fR, \fBW\fR, or \fBO\fR for read,
- read-and-write or ownership respectively.
- Ownership means that the specified user or group has 'root' access
- to this logical archive. Client requests are validated by first
- looking for an entry with a corresponding user name. If none is
- found then an entry with a matching group name is used, else
- permission is denied.
- .IP "\fIarchive\fB/volinfo\fR" 14
- Physical volume information for this logical archive.
- Entries are: current volume id, next location on volume where
- buffer is to be written, remaining space in KB on volume, last
- buffer number written, current buffer number.
- .IP "\fIarchive\fB/tbufinfo\fR" 14
- Current buffer information for this logical archive. Entries are:
- buffer size in bytes, buffer header size in bytes, number of user
- files in buffer.
- .SH BUGS
- None. Jaquith is perfection personified.
-
- .SH "SEE ALSO"
- jmgr jls jstat jput jget jctrl jcopy jclean jbuild
-
- .SH KEYWORDS
- jaquith archive
-